package com.first.dao.impl;

import com.first.dao.DeptDao;
import com.first.entity.Deptn;
import com.first.util.DBUtil;
import org.springframework.stereotype.Repository;


import java.util.List;
import java.util.Map;

@Repository
public class DeptDaoImpl implements DeptDao {
    @Override
    public List<Map> queryAll() {
        String sql="select *from deptn ";
        return DBUtil.queryListMap(sql);
    }

    @Override
    public int queryAllCount(Deptn deptn) {
        String sql="select count(*)from deptn";
        List<List> list = DBUtil.queryList(sql);
        return Integer.parseInt(list.get(0).get(0).toString());
    }

    @Override
    public int addDept(Deptn deptn) {
        String verify="select * from deptn where dept=?";
        List<List> list = DBUtil.queryList(verify,deptn.getDept());
        if(list.size()>0){
            return -2;
        }
        String sql="insert into deptn values(null,?,?,?)";
        return DBUtil.update(sql,deptn.getDept(),deptn.getStatus(),deptn.getRemark());

    }
    @Override
    public int updateDept(Deptn deptn) {
        String sql = "update deptn set dept=?,remark=?,status=? where deptid=? ";
        return DBUtil.update(sql, deptn.getDept(), deptn.getRemark(), deptn.getStatus(), deptn.getDeptid());
    }

    @Override
    public int delDept(Integer id) {
        String sql="delete from deptn where id=?";
        return DBUtil.update(sql,id);
    }


    @Override
    public List<Map> showDept(Deptn deptn) {
        String sql="SELECT deptn.deptid, deptn.dept, deptn.remark, deptn.`status`, `user`.username FROM deptn LEFT JOIN (`user`) ON deptn.deptid = `user`.superior limit ?,?";
        List<Map> list = DBUtil.queryListMap(sql,(deptn.getPage() - 1) * deptn.getLimit(), deptn.getLimit());
        if(list.size()>0){
            return list;
        }
        return null;
    }

    @Override
    public List<Map> deptUser(Integer deptid){
        String sql="SELECT\n" +
                "\t*\n" +
                "FROM\n" +
                "\tdeptn\n" +
                "\tRIGHT JOIN\n" +
                "\t`user`\n" +
                "\tON \n" +
                "\t\tdeptn.deptid = `user`.deptid \n" +
                "\t\twhere  deptn.deptid=?";
        List<Map> list = DBUtil.queryListMap(sql, deptid);
        if(list.size()>0){
            return list;
        }
        return null;
    }

}
